home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 9
/
Night Owl CD-ROM (NOPV9) (Night Owl Publisher) (1993).ISO
/
015a
/
drvpad.zip
/
README
< prev
Wrap
Text File
|
1993-04-04
|
4KB
|
100 lines
DRIVEPAD.SYS -- Air drives for DOS
The problem:
It is always unpleasant when you have to alter your configuration in ways
which cause drive letters to change. For example, if you have a SCSI host
adapter, you can freely add and subtract external drives, but this causes
drive letters which follow the SCSI system to change. It would be nice to
reserve a block of drive letters for use by the SCSI subsystem. This would
allow you to keep constant the drive letters which might follow it.
It is awkward to have to set up different config.sys and other configuration
files for systems which are similar but which have different numbers of hard
drives. Again, it is desirable to be able to create conditional `air drives'
which pad the drive numbering process so that all the systems appear to have
the same number of drives.
For networking systems, it would be useful to be able to pad the hardware
drive numbering so that the network drives begin at the same point for all
systems in the network.
If you use a configuration management utility, it can be a royal pain if you
skip a driver in certain configurations, again because of the resulting
change in drive lettering.
One man's solution:
DRIVEPAD is a tiny null block device. It is placed in config.sys with a
single letter (A-Z) as its argument. It compares the argument letter with the
`next drive' parameter passed to it by DOS during initialization and exits if
the next drive letter is greater than or equal to the argument. Otherwise, it
installs itself as enough drives to match the argument letter. It works only
on DOS version 3.0 and greater.
Example:
device=drivepad.sys g
device=ramdrive.sys
will force the system to allocate drive letters through G: before loading
ramdrive.sys, thus the ram disk will always be H:.
Note that there is one kind of configuration which cannot be supported by
drivepad.sys alone: if you have two BIOS drives and the C drive has extended
volumes, removing the D drive will cause drive letters to change. Obviously,
removing the C drive will also have this effect. For this reason, if you have
two BIOS drives, either use a driver with the D drive and not the BIOS, or
make sure the C drive is a single-volume drive.
Also, drivepad.sys cannot take away previously installed drives, so it will
complain if the argument drive letter is less than the last-allocated drive
letter. In other words, if drives a-f already exist, the line
`device=drivepad.sys e' is bogus, but `device=drivepad.sys f' is OK.
Some technical details:
In terms of driver commands, we do the following:
- Device bits:
Bit 15 clear, for block device
Bit 13 set, for non-IBM disk
--all others are clear
- Init: do parameter checking, exit or install.
- Media Check: returns `not changed' or 1.
- Build BIOS Parameter Block: returns a pointer to the following data table:
#bytes Value
2 512 bytes per sector (standard DOS)
1 4 sectors per chunk (standard HDD)
2 1 reserved sectors (incl. boot sector)
1 2 FATs (standard)
2 256 Max root entries (standard HDD)
2 65450 total sectors (imaginary 770/5/17 drive)
1 0xf8 media id byte (HDD)
2 64 sectors per FAT (max size)
2 17 sectors per track (standard mfm)
2 5 number of heads
4 0 hidden sectors
4 0 if <total sectors> == 0, total sectors
- Read, Write, WriteVfy: return `Drive Not Ready'
- All other commands return `Unknown Command'
In closing:
This program is my property, but you are welcome to use it. You are not
authorized to sell it or to modify it. If you have comments or criticisms of
drivepad.sys, or if you run into trouble setting it up, please contact me via
e-mail and I will try to help.
Greg Shenaut 71061,1324
gkshenaut@ucdavis.edu